"""文件保存对话框示例模块

该模块演示了如何使用QFileDialog实现文件保存功能，
允许用户选择保存位置和文件名。
"""

from PySide6.QtWidgets import QFileDialog, QDialog, QApplication, QMainWindow


class DlgSelectMp3(QMainWindow):
    """文件保存对话框窗口类
    
    演示如何使用QFileDialog的getSaveFileName方法实现文件保存功能。
    """
    
    def __init__(self, parent=None):
        """初始化窗口"""
        QMainWindow.__init__(self, parent)

    def save_data(self):
        """保存数据到文件
        
        打开文件保存对话框，让用户选择保存位置和文件名，
        然后将示例数据写入文件。
        """
        fileNames = []
        fileDialog = QFileDialog(self)
        # getSaveFileName 这是一个方便的静态函数，它将返回用户选择的文件名。该文件不必存在
        fileNames = fileDialog.getSaveFileName(self, '保存文件', '', 'Text files (*.txt);; All files (*)')
        print(fileNames)
        try:
            with open(fileNames[0], 'w', encoding='utf-8') as f:
                f.write('123')
        except:
            pass


if __name__ == "__main__":
    # 创建应用程序实例
    app = QApplication([])
    
    # 创建窗口实例并调用保存数据方法
    dlgmw = DlgSelectMp3()
    selectFiles = dlgmw.save_data()
    
    # 运行应用程序事件循环
    app.exec_()